如果在審PR的時候直接發一個comment說
這個lib 這個function根本不夠好用,我想第二天就是一場工程師之間的大戰
我們應該有一些事實可以說明問題
例如以下幾點, 看到這種問題實務上直接退就好了
並且為了可維護性的考慮, 真的是槍底在腦袋上都一定要讓對方改
剩下這些問題影響深遠,MR收到應該點出來跟同事好好溝通
def parse_label_coordinate_as_x_y_axis_pair(coordindates):
x_y_pair_coordinate = []
for i in range(0, len(coordindates), 2):
x_y_pair_coordinate.append(l[i:i + n])
return x_y_pair_coordinate
可以發現for迴圈開始那一段, 可以被表述成chunk_by_2
整個就應該被修改成
def chunk_list_by_n(list, n):
for i in range(0, len(l), n):
yield l[i:i + n]
def parse_label_coordinate_as_x_y_axis_pair(coordindates):
x_y_pair_coordinate = []
for i in range(0, len(coordindates), 2):
x_y_pair_coordinate.append(l[i:i + n])
return list(chunk_list_by_n(coordindates, 2))
在進一步應該請對方將chunk抽出去, 畢竟是一個很基本的功能
2. 過度抽象化/錯誤的抽象化
def update_report(df: DataFrame):
google_sheet.update(REPORT_SHEET_ID, TAB_NAME, df)
這段code的問題在於沒有任何輔助說明的功能
即便在主程式直接寫這一段code我也能輕易明白這段在更新Google Sheet的報表
而且如果我看不懂, 那麼抽象成update_report也依然看不懂